/* 
 * File:   sytem.h
 * Author: Tomás R. González Barroso  
 * Diseño de sistemas Operativos
 * Created on 26 de junio de 2013, 8:46
 */
#include "comun.h"
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>


//TDFU
typedef struct tdfu_element {
    int fd; 
    int fdreal;  
} tdfu_element;

typedef struct s_tdfu {
   int o_files; 
   tdfu_element files[MAXOPEN];
} s_tdfu;

s_tdfu tdfu;

//Inicializamos estructura
void s_init(void);

//Buscamos el fd asociado al inode
int s_getfd(ino_t inode);

//Visualizamos TDFU
void s_print (void);

//Añadimos un nuevo fichero a la tabla en exclusión mutua.
int s_open(char *filepath,int mode);

//Funcion de lectura de usuario
ssize_t s_read(int fd, char *buf, size_t nbytes);

//Funcion de escritura de usuario
ssize_t s_write(int fd, char *buf, size_t nbytes);

//Funcion de posicionamiento de usuario
off_t s_lseek(int fd, off_t offset, int whence);

//Liberamos fichero 
void s_close(int fd);
